const path = require('path')
const { BrowserWindow, ipcMain } = require('electron')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    frame: false, // 移除默认的窗口框架和控制按钮
    webPreferences: {
      // 在开发模式下启用调试
      preload: path.join(__dirname, 'preload.js'),
      devTools: process.env.NODE_ENV === 'development'
    }
  })

  const { initcookies } = require('./cookies/index');

  // 暴露检测Cookie有效性的API给渲染进程
  ipcMain.handle('checkCookieValidity', async () => {
    try {
      // 调用之前写的initcookies，返回有效Cookie则视为有效
      const cookies = await initcookies();
      return !!cookies; // 存在有效Cookie返回true，否则false
    } catch (err) {
      console.error('检测Cookie有效性失败：', err);
      return false;
    }
  });

  // 处理窗口控制的 IPC 消息
  ipcMain.on('window-minimize', () => {
    win.minimize();
  });

  ipcMain.on('window-maximize', () => {
    if (win.isMaximized()) {
      win.unmaximize();
      win.webContents.send('window-unmaximized');
    } else {
      win.maximize();
      win.webContents.send('window-maximized');
    }
  });

  ipcMain.on('window-close', () => {
    win.close();
  });

  ipcMain.handle('window-is-maximized', () => {
    return win.isMaximized();
  });

  // 在开发模式下加载 Vite 开发服务器
  if (process.env.NODE_ENV === 'development') {
    win.loadURL('http://localhost:3000');
    console.log('正在加载: http://localhost:3000');
  } else {
    const url = 'file://' + path.join(__dirname, '../dist/index.html');
    win.loadURL(url);
  }
  
  // 在开发模式下自动打开开发者工具
  if (process.env.NODE_ENV === 'development') {
    win.webContents.openDevTools()
  }
}

module.exports = { createWindow };